package GUI;
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import Cardapio.Produto;
import FachadaGUI_Negocios.Fachada;

enum Tipos {start,massas,sobremesas,bebidas,pizzas};

public class JanelaPrincipal extends javax.swing.JFrame implements MouseListener{
	private PanelSTART panelSTART;
	private PanelTemplateGeral panelGeral;
	private Tipos tipo;
	private Fachada fachada;
	
	public JanelaPrincipal() {
		this.fachada = new Fachada();
		this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
		this.setMinimumSize(new java.awt.Dimension(1024, 768));
		this.setMaximumSize(new java.awt.Dimension (1280,1024));
		this.setTitle("DreaMenu- A new kind of menu to make more interactive your journey to be served");
		this.setSize(1024,768);
		//this.setUndecorated(true);
		this.setLayout(new BorderLayout());
		this.criarPanelStart();
		//this.criarPanelGeral("Sobremesas");
		this.setVisible(true);
	}
	
	public void criarPanelStart(){
		this.panelSTART = new PanelSTART(this);
		this.getContentPane().add(this.panelSTART, BorderLayout.CENTER);
		this.tipo = Tipos.start;
	}
	
	public void criarPanelGeral(String n){
		this.panelGeral = new PanelTemplateGeral(n, this);
		//this.remove(this.panelSTART);
		this.getContentPane().add(this.panelGeral, BorderLayout.CENTER);
		this.setVisible(true);
	}

	public Produto[] getArrayProdutos(String tipo){
		return this.fachada.getArrayProdutos(tipo);
	}

	public void mouseClicked(MouseEvent e) {
		if(this.tipo == Tipos.start){
			if(this.panelSTART.getBotaoAJUDA() == e.getSource()){
				
			}//usar o enum!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
			else if (this.panelSTART.getBotaoBebidas() == e.getSource()){
				this.panelGeral = new PanelTemplateGeral("bebida", this);
				this.getContentPane().add(this.panelGeral, BorderLayout.CENTER);
				this.remove(this.panelSTART);
				this.tipo = Tipos.bebidas;
			}
			else if (this.panelSTART.getBotaoMASSAS() == e.getSource()){
				this.remove(this.panelSTART);
				this.panelGeral = new PanelTemplateGeral("massa",this);
				this.getContentPane().add(this.panelGeral, BorderLayout.CENTER);
				this.tipo = Tipos.massas;
			}
			else if (this.panelSTART.getBotaoPIZZA() == e.getSource()){
				this.remove(this.panelSTART);
				this.panelGeral = new PanelTemplateGeral("pizza",this);
				this.getContentPane().add(this.panelGeral, BorderLayout.CENTER);
				this.tipo = Tipos.pizzas;
			}
			else if (this.panelSTART.getBotaoSOBREMESAS() == e.getSource()){
				this.remove(this.panelSTART);
				this.panelGeral = new PanelTemplateGeral("sobremesa",this);
				this.getContentPane().add(this.panelGeral, BorderLayout.CENTER);
				this.tipo = Tipos.sobremesas;
			}
			
		}
		
		else if(this.tipo == Tipos.massas){
			if(this.panelGeral.getBotaoVOLTAR() == e.getSource()){
				this.panelSTART = new PanelSTART(this);
				this.remove(this.panelGeral);
				this.getContentPane().add(this.panelSTART, BorderLayout.CENTER);
				this.tipo = Tipos.start;
				this.setVisible(true);
			}
			else if(this.panelGeral.getBotaoFAZERpedido() == e.getSource()){
				//acao do botao fazer pedido
				//pega o codigo do produto selecionado e manda.
				this.fachada.fazerPedido(this.panelGeral.getCodigoPedidoSelecionado());
			}
		}else if(this.tipo == Tipos.pizzas){
			if(this.panelGeral.getBotaoVOLTAR() == e.getSource()){
				this.panelSTART = new PanelSTART(this);
				this.remove(this.panelGeral);
				this.getContentPane().add(this.panelSTART, BorderLayout.CENTER);
				this.tipo = Tipos.start;
				this.setVisible(true);
			}
			else if(this.panelGeral.getBotaoFAZERpedido() == e.getSource()){
				//acao do botao fazer pedido
				//pega o codigo do produto selecionado e manda.
				this.fachada.fazerPedido(this.panelGeral.getCodigoPedidoSelecionado());
			}
		}else if(this.tipo == Tipos.bebidas){
			if(this.panelGeral.getBotaoVOLTAR() == e.getSource()){
				this.panelSTART = new PanelSTART(this);
				this.remove(this.panelGeral);
				this.getContentPane().add(this.panelSTART, BorderLayout.CENTER);
				this.tipo = Tipos.start;
				this.setVisible(true);
			}
			else if(this.panelGeral.getBotaoFAZERpedido() == e.getSource()){
				//acao do botao fazer pedido
				//pega o codigo do produto selecionado e manda.
				this.fachada.fazerPedido(this.panelGeral.getCodigoPedidoSelecionado());
			}
		}else if(this.tipo == Tipos.sobremesas){
			if(this.panelGeral.getBotaoVOLTAR() == e.getSource()){
				this.panelSTART = new PanelSTART(this);
				this.remove(this.panelGeral);
				this.getContentPane().add(this.panelSTART, BorderLayout.CENTER);
				this.tipo = Tipos.start;
				this.setVisible(true);
			}
			else if(this.panelGeral.getBotaoFAZERpedido() == e.getSource()){
				//acao do botao fazer pedido
				//pega o codigo do produto selecionado e manda.
				this.fachada.fazerPedido(this.panelGeral.getCodigoPedidoSelecionado());
			}
		}
	}
	
	//acao do botao fazer pedido
	private void acaoBotaoFazerPedido(int codigo) {
		// TODO Auto-generated method stub
		
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseExited(MouseEvent e) {
	
	}

	public void mousePressed(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	
	//-------------------------------------------------------------------------------------------------//
	//-------------------------------------------------------------------------------------------------//
	public static void main(String args[]) {//---------------------------------------------------------//
		JanelaPrincipal janela = new JanelaPrincipal();//----------------------------------------------//
		janela.setVisible(true);/////////////////////////////////////////////////////////////////////////
	}

}
